package com.hzx.shoot;

import com.hzx.shoot.img.Images;

import java.awt.image.BufferedImage;

/*
 * 英雄类
 * 作用:可以发射子弹
 * */
public class Hero extends FlyingObject {
    private int life;
    private int fire;

    @Override
    public String toString() {
        return "Hero{" +
                "life=" + life +
                ", fire=" + fire +
                ", wdith=" + wdith +
                ", height=" + height +
                ", x=" + x +
                ", y=" + y +
                '}';
    }

    //无参构造
    public Hero() {
/*        this.height = 108;
        this.wdith = 130;
        //设置初始位置
        this.x =150 ;
        this.y =450 ;*/
        super(150, 450, 130, 108);

        life = 3;
        fire = 1;//单发
    }

    int index = 0;//通过index来区别要使用哪一款飞机图片

    //这就是为什么要对Heros进行有0和1的图片
    @Override
    public BufferedImage getImage() {
        BufferedImage[] heros = Images.heroImage;
        return heros[index++ % 2];
    }

    //生成子弹的方法 返回一个数组 射击子弹的方法
    public Bullet[] nextBullet() {
        int xStep = this.wdith / 4;
        if (fire > 0) {
            Bullet[] bullets = new Bullet[2];//数组对象
            bullets[0] = new Bullet(this.x + 1 * xStep, this.y);
            bullets[1] = new Bullet(this.x + 3 * xStep, this.y);
            return bullets;//返回射击子弹的数组
        } else {
            Bullet[] bullets = new Bullet[1];//数组对象
            bullets[0] = new Bullet(this.x + 2 * xStep, this.y);
            return bullets;
        }
    }

    @Override
    public void step() {

    }
    //因为变为抽象类 所以在每个子类里面都要对抽象的方法进行重写
    //这边返回的不是数组 所以要把前面定义的数组拆分出来

}
